Interactive leafmap
In [1]:
Copied!
import ecospat.mapping as ecospat_ipyleaflet
import leafmap
import ecospat.mapping as ecospat_ipyleaflet
import leafmap
Creating an interactive map with ecospat package¶
In [2]:
Copied!
interactive_map = ecospat_ipyleaflet.Map(center=[40, -100], zoom=4, height="300px")
url = "https://nominatim.openstreetmap.org/search?format=json&q={s}"
interactive_map.add_search_control(url, zoom=10, position="topleft")
interactive_map
interactive_map = ecospat_ipyleaflet.Map(center=[40, -100], zoom=4, height="300px")
url = "https://nominatim.openstreetmap.org/search?format=json&q={s}"
interactive_map.add_search_control(url, zoom=10, position="topleft")
interactive_map
Out[2]:
Adding a WMS layer with a legend¶
In [3]:
Copied!
legend_map = leafmap.Map(center=[40, -100], zoom=4, height="500px")
wms_url = "https://services.terrascope.be/wms/v2?"
wms_layer = "WORLDCOVER_2021_MAP"
# Add the ESA WorldCover layer
legend_map.add_wms_layer(
url=wms_url,
layers=wms_layer,
name="ESA WorldCover 2021",
attribution="ESA/Terrascope",
format="image/png",
transparent=True,
shown=True,
)
legend_map.add_legend(
title="ESA WorldCover", legend_dict=leafmap.builtin_legends["ESA_WorldCover"]
)
legend_map
legend_map = leafmap.Map(center=[40, -100], zoom=4, height="500px")
wms_url = "https://services.terrascope.be/wms/v2?"
wms_layer = "WORLDCOVER_2021_MAP"
# Add the ESA WorldCover layer
legend_map.add_wms_layer(
url=wms_url,
layers=wms_layer,
name="ESA WorldCover 2021",
attribution="ESA/Terrascope",
format="image/png",
transparent=True,
shown=True,
)
legend_map.add_legend(
title="ESA WorldCover", legend_dict=leafmap.builtin_legends["ESA_WorldCover"]
)
legend_map
Out[3]:
Creating cluster markers¶
In [4]:
Copied!
import geopandas as gpd
url = "https://github.com/opengeos/datasets/releases/download/places/wa_building_centroids.geojson"
# Read the GeoJSON file
gdf = gpd.read_file(url)
# Add latitude and longitude columns from the geometry
gdf["longitude"] = gdf.geometry.x
gdf["latitude"] = gdf.geometry.y
m = leafmap.Map(center=[47.654, -117.60], zoom=16)
m.add_basemap("Google Satellite")
m.add_marker_cluster(gdf, x="longitude", y="latitude", layer_name="Buildings")
m
import geopandas as gpd
url = "https://github.com/opengeos/datasets/releases/download/places/wa_building_centroids.geojson"
# Read the GeoJSON file
gdf = gpd.read_file(url)
# Add latitude and longitude columns from the geometry
gdf["longitude"] = gdf.geometry.x
gdf["latitude"] = gdf.geometry.y
m = leafmap.Map(center=[47.654, -117.60], zoom=16)
m.add_basemap("Google Satellite")
m.add_marker_cluster(gdf, x="longitude", y="latitude", layer_name="Buildings")
m
Out[4]:
Creating circle markers¶
In [5]:
Copied!
m2 = leafmap.Map(center=[47.654, -117.60], zoom=16)
m2.add_basemap("Google Satellite")
m2.add_circle_markers_from_xy(
gdf,
x="longitude",
y="latitude",
layer_name="Buildings",
radius=5,
fill_color="yellow",
fill_opacity=0.8,
color="red",
)
m2
m2 = leafmap.Map(center=[47.654, -117.60], zoom=16)
m2.add_basemap("Google Satellite")
m2.add_circle_markers_from_xy(
gdf,
x="longitude",
y="latitude",
layer_name="Buildings",
radius=5,
fill_color="yellow",
fill_opacity=0.8,
color="red",
)
m2
Out[5]:
Visualizing vector data - polygons¶
In [6]:
Copied!
m3 = leafmap.Map(center=[47.654, -117.60], zoom=16)
style = {"color": "red"}
m3.add_basemap("Google Satellite")
m3.add_vector(
"https://github.com/opengeos/datasets/releases/download/places/wa_overture_buildings.geojson",
style=style,
layer_name="Building Outlines",
)
m3
m3 = leafmap.Map(center=[47.654, -117.60], zoom=16)
style = {"color": "red"}
m3.add_basemap("Google Satellite")
m3.add_vector(
"https://github.com/opengeos/datasets/releases/download/places/wa_overture_buildings.geojson",
style=style,
layer_name="Building Outlines",
)
m3
Out[6]:
Visualizing vector data - lines¶
In [7]:
Copied!
m4 = leafmap.Map(center=[36.121, -115.205], zoom=17)
style = {
"color": "red", # outline color
"weight": 2, # outline thickness # fully transparent
}
m4.add_basemap("Google Satellite")
m4.add_vector(
"https://github.com/opengeos/datasets/releases/download/places/las_vegas_roads.geojson",
style=style,
layer_name="Las Vegas Roads",
)
m4
m4 = leafmap.Map(center=[36.121, -115.205], zoom=17)
style = {
"color": "red", # outline color
"weight": 2, # outline thickness # fully transparent
}
m4.add_basemap("Google Satellite")
m4.add_vector(
"https://github.com/opengeos/datasets/releases/download/places/las_vegas_roads.geojson",
style=style,
layer_name="Las Vegas Roads",
)
m4
Out[7]:
Visualizing vector data - data¶
In [8]:
Copied!
m5 = leafmap.Map(center=[40, -100], zoom=4)
url = "https://github.com/opengeos/datasets/releases/download/us/us_counties.geojson"
gdf = gpd.read_file(url)
# Create the choropleth map based on the CENSUSAREA column
m5.add_data(
gdf,
column="CENSUSAREA",
cmap="Blues",
layer_name="Census Area",
legend_title="Census Area",
legend=True,
)
# Display the map
m5
m5 = leafmap.Map(center=[40, -100], zoom=4)
url = "https://github.com/opengeos/datasets/releases/download/us/us_counties.geojson"
gdf = gpd.read_file(url)
# Create the choropleth map based on the CENSUSAREA column
m5.add_data(
gdf,
column="CENSUSAREA",
cmap="Blues",
layer_name="Census Area",
legend_title="Census Area",
legend=True,
)
# Display the map
m5
Out[8]:
Creating a split map¶
In [9]:
Copied!
m6 = leafmap.Map()
m6.add_basemap("Satellite")
image1 = (
"https://github.com/opengeos/datasets/releases/download/raster/Libya-2023-07-01.tif"
)
image2 = (
"https://github.com/opengeos/datasets/releases/download/raster/Libya-2023-09-13.tif"
)
m6.split_map(
image1,
image2,
left_label="Pre-event",
right_label="Post-event",
)
m6
m6 = leafmap.Map()
m6.add_basemap("Satellite")
image1 = (
"https://github.com/opengeos/datasets/releases/download/raster/Libya-2023-07-01.tif"
)
image2 = (
"https://github.com/opengeos/datasets/releases/download/raster/Libya-2023-09-13.tif"
)
m6.split_map(
image1,
image2,
left_label="Pre-event",
right_label="Post-event",
)
m6
Out[9]: